import java.util.Random;
import java.util.concurrent.ExecutionException;

import sort.memory.QuickSort;

public class MemorySortTest {

	public static void main(String[] args) throws InterruptedException, ExecutionException {
		
//		int length = 800_000_000;
		int length = 100_000_000;
//		int length = 10_000_000;
//		int length = 1_000_000;
//		int length = 200_000;
//		int length = 100_000;
//		int length = 10;
//		int length = 3;
		int a[] = new int[length];
		Random random = new Random();
		for(int i = 0; i < length; i++){
			a[i] = random.nextInt(10);
		}
		
//		int a[] = {11, 40, 92};
		
//		System.out.println(Arrays.toString(a));
		
		long start = System.currentTimeMillis();
		long end = start;
		int[] temp = null;
		
//		temp = a.clone();
//		start = end;
//		InsertSort.sort(temp);
//		end = System.currentTimeMillis();
//		System.out.println((end - start) / 1000.0);
//		
//		temp = a.clone();
//		start = end;
//		BubbleSort.sort(temp);
//		end = System.currentTimeMillis();
//		System.out.println((end - start) / 1000.0);
//		
//		temp = a.clone();
//		start = end;
//		SelectSort.sort(temp);
//		end = System.currentTimeMillis();
//		System.out.println((end - start) / 1000.0);
//		
//		temp = a.clone();
//		start = end;
//		ShellSort.sort(temp);
//		end = System.currentTimeMillis();
//		System.out.println((end - start) / 1000.0);
		
//		temp = a.clone();
//		start = end;
//		Arrays.sort(a);
//		end = System.currentTimeMillis();
//		System.out.println((end - start) / 1000.0);
		
//		temp = a.clone();
		start = end;
		QuickSort.sort(a);
		end = System.currentTimeMillis();
		System.out.println((end - start) / 1000.0);
//		
//		temp = a.clone();
//		QuickSortMutilThread.init();
//		System.out.println("开始。。。");
//		start = end;
//		QuickSortMutilThread.sort(a);
//		end = System.currentTimeMillis();
//		System.out.println((end - start) / 1000.0);
//		QuickSortMutilThread.close();
//		
//		temp = a.clone();
//		start = end;
//		MergeSort.sort(temp);
//		end = System.currentTimeMillis();
//		System.out.println((end - start) / 1000.0);
//		
//		temp = a.clone();
//		start = end;
//		HeapSort.sort(temp);
//		end = System.currentTimeMillis();
//		System.out.println((end - start) / 1000.0);
		
//		System.out.println(Arrays.toString(a));
	}
}
